{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import time\n",
    "import xgboost as xgb\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.model_selection  import GridSearchCV \n",
    "from xgboost.sklearn import XGBClassifier\n",
    "from sklearn import  metrics    #scklearn functions\n",
    "import matplotlib.pylab as plt\n",
    "%matplotlib inline\n",
    "#from matplotlib.pylab import rcParams\n",
    "# rcParams['figure.figsize'] = 22, 8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uid</th>\n",
       "      <th>spu_id</th>\n",
       "      <th>type</th>\n",
       "      <th>date</th>\n",
       "      <th>uiclick_3</th>\n",
       "      <th>uibuy_3</th>\n",
       "      <th>ui_ratio_3</th>\n",
       "      <th>uiclick_8</th>\n",
       "      <th>uibuy_8</th>\n",
       "      <th>ui_ratio_8</th>\n",
       "      <th>...</th>\n",
       "      <th>ub_ratio_8</th>\n",
       "      <th>ubbuy_21</th>\n",
       "      <th>ubclick_21</th>\n",
       "      <th>ub_ratio_21</th>\n",
       "      <th>ubbuy_34</th>\n",
       "      <th>ubclick_34</th>\n",
       "      <th>ub_ratio_34</th>\n",
       "      <th>ubbuy_89</th>\n",
       "      <th>ubclick_89</th>\n",
       "      <th>ub_ratio_89</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>522945</td>\n",
       "      <td>338312</td>\n",
       "      <td>0</td>\n",
       "      <td>03-28</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>334640</td>\n",
       "      <td>1130939</td>\n",
       "      <td>0</td>\n",
       "      <td>03-27</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>420321</td>\n",
       "      <td>1603326</td>\n",
       "      <td>0</td>\n",
       "      <td>03-27</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>141.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>41979</td>\n",
       "      <td>713518</td>\n",
       "      <td>0</td>\n",
       "      <td>03-29</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>52.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>52.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>69.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>534150</td>\n",
       "      <td>1009663</td>\n",
       "      <td>0</td>\n",
       "      <td>03-28</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      uid   spu_id  type   date  uiclick_3  uibuy_3  ui_ratio_3  uiclick_8  \\\n",
       "0  522945   338312     0  03-28       -1.0     -1.0        -1.0       -1.0   \n",
       "1  334640  1130939     0  03-27       -1.0     -1.0        -1.0       -1.0   \n",
       "2  420321  1603326     0  03-27       -1.0     -1.0        -1.0       -1.0   \n",
       "3   41979   713518     0  03-29       -1.0     -1.0        -1.0       -1.0   \n",
       "4  534150  1009663     0  03-28       -1.0     -1.0        -1.0       -1.0   \n",
       "\n",
       "   uibuy_8  ui_ratio_8     ...       ub_ratio_8  ubbuy_21  ubclick_21  \\\n",
       "0     -1.0        -1.0     ...             -1.0      -1.0        -1.0   \n",
       "1     -1.0        -1.0     ...             -1.0       0.0         5.0   \n",
       "2     -1.0        -1.0     ...              0.0       0.0        44.0   \n",
       "3     -1.0        -1.0     ...              0.0       0.0        52.0   \n",
       "4     -1.0        -1.0     ...             -1.0      -1.0        -1.0   \n",
       "\n",
       "   ub_ratio_21  ubbuy_34  ubclick_34  ub_ratio_34  ubbuy_89  ubclick_89  \\\n",
       "0         -1.0      -1.0        -1.0         -1.0      -1.0        -1.0   \n",
       "1          0.0       0.0         5.0          0.0       0.0         5.0   \n",
       "2          0.0       0.0        44.0          0.0       0.0       141.0   \n",
       "3          0.0       0.0        52.0          0.0       0.0        69.0   \n",
       "4         -1.0      -1.0        -1.0         -1.0      -1.0        -1.0   \n",
       "\n",
       "   ub_ratio_89  \n",
       "0         -1.0  \n",
       "1          0.0  \n",
       "2          0.0  \n",
       "3          0.0  \n",
       "4         -1.0  \n",
       "\n",
       "[5 rows x 79 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train = pd.read_csv('cache/online_train_feat3.csv')\n",
    "train = train.fillna(-1)\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uid</th>\n",
       "      <th>spu_id</th>\n",
       "      <th>uiclick_3</th>\n",
       "      <th>uibuy_3</th>\n",
       "      <th>ui_ratio_3</th>\n",
       "      <th>uiclick_8</th>\n",
       "      <th>uibuy_8</th>\n",
       "      <th>ui_ratio_8</th>\n",
       "      <th>uiclick_21</th>\n",
       "      <th>uibuy_21</th>\n",
       "      <th>...</th>\n",
       "      <th>ub_ratio_8</th>\n",
       "      <th>ubbuy_21</th>\n",
       "      <th>ubclick_21</th>\n",
       "      <th>ub_ratio_21</th>\n",
       "      <th>ubbuy_34</th>\n",
       "      <th>ubclick_34</th>\n",
       "      <th>ub_ratio_34</th>\n",
       "      <th>ubbuy_89</th>\n",
       "      <th>ubclick_89</th>\n",
       "      <th>ub_ratio_89</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>117570</td>\n",
       "      <td>771214</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>60750</td>\n",
       "      <td>1580520</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>595361</td>\n",
       "      <td>484220</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>45427</td>\n",
       "      <td>326736</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>42.0</td>\n",
       "      <td>0.166667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>443345</td>\n",
       "      <td>1049603</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 77 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      uid   spu_id  uiclick_3  uibuy_3  ui_ratio_3  uiclick_8  uibuy_8  \\\n",
       "0  117570   771214       -1.0     -1.0        -1.0       -1.0     -1.0   \n",
       "1   60750  1580520       -1.0     -1.0        -1.0       -1.0     -1.0   \n",
       "2  595361   484220       -1.0     -1.0        -1.0       -1.0     -1.0   \n",
       "3   45427   326736       -1.0     -1.0        -1.0       -1.0     -1.0   \n",
       "4  443345  1049603       -1.0     -1.0        -1.0       -1.0     -1.0   \n",
       "\n",
       "   ui_ratio_8  uiclick_21  uibuy_21     ...       ub_ratio_8  ubbuy_21  \\\n",
       "0        -1.0        -1.0      -1.0     ...             -1.0       0.0   \n",
       "1        -1.0        -1.0      -1.0     ...             -1.0      -1.0   \n",
       "2        -1.0        -1.0      -1.0     ...             -1.0      -1.0   \n",
       "3        -1.0        -1.0      -1.0     ...              0.0       0.0   \n",
       "4        -1.0        -1.0      -1.0     ...             -1.0      -1.0   \n",
       "\n",
       "   ubclick_21  ub_ratio_21  ubbuy_34  ubclick_34  ub_ratio_34  ubbuy_89  \\\n",
       "0         1.0          0.0       0.0         1.0          0.0       0.0   \n",
       "1        -1.0         -1.0      -1.0        -1.0         -1.0      -1.0   \n",
       "2        -1.0         -1.0       0.0         1.0          0.0       0.0   \n",
       "3         3.0          0.0       0.0         3.0          0.0       7.0   \n",
       "4        -1.0         -1.0      -1.0        -1.0         -1.0      -1.0   \n",
       "\n",
       "   ubclick_89  ub_ratio_89  \n",
       "0         2.0     0.000000  \n",
       "1        -1.0    -1.000000  \n",
       "2        21.0     0.000000  \n",
       "3        42.0     0.166667  \n",
       "4        -1.0    -1.000000  \n",
       "\n",
       "[5 rows x 77 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sub = pd.read_csv('cache/sub_feat3.csv')\n",
    "sub = sub.fillna(-1)\n",
    "sub.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uid</th>\n",
       "      <th>spu_id</th>\n",
       "      <th>type</th>\n",
       "      <th>uiclick</th>\n",
       "      <th>uibuy</th>\n",
       "      <th>ui_ratio</th>\n",
       "      <th>uiclick_2</th>\n",
       "      <th>uibuy_2</th>\n",
       "      <th>ui_ratio_2</th>\n",
       "      <th>uiclick_3</th>\n",
       "      <th>...</th>\n",
       "      <th>i_ratio_21</th>\n",
       "      <th>iclick_34</th>\n",
       "      <th>ibuy_34</th>\n",
       "      <th>i_ratio_34</th>\n",
       "      <th>iclick_55</th>\n",
       "      <th>ibuy_55</th>\n",
       "      <th>i_ratio_55</th>\n",
       "      <th>iclick_89</th>\n",
       "      <th>ibuy_89</th>\n",
       "      <th>i_ratio_89</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>...</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "      <td>5.331337e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.253177e+05</td>\n",
       "      <td>1.057858e+06</td>\n",
       "      <td>1.096704e-02</td>\n",
       "      <td>-9.917760e-01</td>\n",
       "      <td>-9.958613e-01</td>\n",
       "      <td>-9.958634e-01</td>\n",
       "      <td>-9.838671e-01</td>\n",
       "      <td>-9.919341e-01</td>\n",
       "      <td>-9.919390e-01</td>\n",
       "      <td>-9.755232e-01</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.329755e-01</td>\n",
       "      <td>1.191870e+02</td>\n",
       "      <td>1.149187e+00</td>\n",
       "      <td>-1.256255e-01</td>\n",
       "      <td>1.747665e+02</td>\n",
       "      <td>1.893878e+00</td>\n",
       "      <td>-1.112332e-01</td>\n",
       "      <td>2.021125e+02</td>\n",
       "      <td>2.485608e+00</td>\n",
       "      <td>-1.055906e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.875326e+05</td>\n",
       "      <td>6.102542e+05</td>\n",
       "      <td>1.041478e-01</td>\n",
       "      <td>1.280365e-01</td>\n",
       "      <td>6.464812e-02</td>\n",
       "      <td>6.458985e-02</td>\n",
       "      <td>1.798463e-01</td>\n",
       "      <td>9.007013e-02</td>\n",
       "      <td>8.997528e-02</td>\n",
       "      <td>2.220348e-01</td>\n",
       "      <td>...</td>\n",
       "      <td>3.542114e-01</td>\n",
       "      <td>2.432904e+02</td>\n",
       "      <td>5.366428e+00</td>\n",
       "      <td>3.462475e-01</td>\n",
       "      <td>3.510529e+02</td>\n",
       "      <td>9.268372e+00</td>\n",
       "      <td>3.300972e-01</td>\n",
       "      <td>4.053342e+02</td>\n",
       "      <td>1.334954e+01</td>\n",
       "      <td>3.235211e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>3.000000e+00</td>\n",
       "      <td>2.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.635880e+05</td>\n",
       "      <td>5.290100e+05</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>6.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.000000e+01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.100000e+01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.256190e+05</td>\n",
       "      <td>1.062819e+06</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>3.400000e+01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>5.100000e+01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>5.900000e+01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>4.873600e+05</td>\n",
       "      <td>1.585468e+06</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>...</td>\n",
       "      <td>4.273504e-03</td>\n",
       "      <td>1.210000e+02</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>4.962779e-03</td>\n",
       "      <td>1.800000e+02</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>6.802721e-03</td>\n",
       "      <td>2.090000e+02</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>7.352941e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>6.499970e+05</td>\n",
       "      <td>2.114305e+06</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>2.000000e+00</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>3.000000e+00</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>3.000000e+00</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>2.994000e+03</td>\n",
       "      <td>1.400000e+02</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>5.079000e+03</td>\n",
       "      <td>2.800000e+02</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>6.443000e+03</td>\n",
       "      <td>4.890000e+02</td>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8 rows × 93 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                uid        spu_id          type       uiclick         uibuy  \\\n",
       "count  5.331337e+06  5.331337e+06  5.331337e+06  5.331337e+06  5.331337e+06   \n",
       "mean   3.253177e+05  1.057858e+06  1.096704e-02 -9.917760e-01 -9.958613e-01   \n",
       "std    1.875326e+05  6.102542e+05  1.041478e-01  1.280365e-01  6.464812e-02   \n",
       "min    3.000000e+00  2.000000e+00  0.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "25%    1.635880e+05  5.290100e+05  0.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "50%    3.256190e+05  1.062819e+06  0.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "75%    4.873600e+05  1.585468e+06  0.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "max    6.499970e+05  2.114305e+06  1.000000e+00  2.000000e+00  1.000000e+00   \n",
       "\n",
       "           ui_ratio     uiclick_2       uibuy_2    ui_ratio_2     uiclick_3  \\\n",
       "count  5.331337e+06  5.331337e+06  5.331337e+06  5.331337e+06  5.331337e+06   \n",
       "mean  -9.958634e-01 -9.838671e-01 -9.919341e-01 -9.919390e-01 -9.755232e-01   \n",
       "std    6.458985e-02  1.798463e-01  9.007013e-02  8.997528e-02  2.220348e-01   \n",
       "min   -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "25%   -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "50%   -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "75%   -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "max    1.000000e+00  3.000000e+00  1.000000e+00  1.000000e+00  3.000000e+00   \n",
       "\n",
       "           ...         i_ratio_21     iclick_34       ibuy_34    i_ratio_34  \\\n",
       "count      ...       5.331337e+06  5.331337e+06  5.331337e+06  5.331337e+06   \n",
       "mean       ...      -1.329755e-01  1.191870e+02  1.149187e+00 -1.256255e-01   \n",
       "std        ...       3.542114e-01  2.432904e+02  5.366428e+00  3.462475e-01   \n",
       "min        ...      -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "25%        ...       0.000000e+00  6.000000e+00  0.000000e+00  0.000000e+00   \n",
       "50%        ...       0.000000e+00  3.400000e+01  0.000000e+00  0.000000e+00   \n",
       "75%        ...       4.273504e-03  1.210000e+02  1.000000e+00  4.962779e-03   \n",
       "max        ...       1.000000e+00  2.994000e+03  1.400000e+02  1.000000e+00   \n",
       "\n",
       "          iclick_55       ibuy_55    i_ratio_55     iclick_89       ibuy_89  \\\n",
       "count  5.331337e+06  5.331337e+06  5.331337e+06  5.331337e+06  5.331337e+06   \n",
       "mean   1.747665e+02  1.893878e+00 -1.112332e-01  2.021125e+02  2.485608e+00   \n",
       "std    3.510529e+02  9.268372e+00  3.300972e-01  4.053342e+02  1.334954e+01   \n",
       "min   -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00 -1.000000e+00   \n",
       "25%    1.000000e+01  0.000000e+00  0.000000e+00  1.100000e+01  0.000000e+00   \n",
       "50%    5.100000e+01  0.000000e+00  0.000000e+00  5.900000e+01  0.000000e+00   \n",
       "75%    1.800000e+02  1.000000e+00  6.802721e-03  2.090000e+02  1.000000e+00   \n",
       "max    5.079000e+03  2.800000e+02  1.000000e+00  6.443000e+03  4.890000e+02   \n",
       "\n",
       "         i_ratio_89  \n",
       "count  5.331337e+06  \n",
       "mean  -1.055906e-01  \n",
       "std    3.235211e-01  \n",
       "min   -1.000000e+00  \n",
       "25%    0.000000e+00  \n",
       "50%    0.000000e+00  \n",
       "75%    7.352941e-03  \n",
       "max    1.000000e+00  \n",
       "\n",
       "[8 rows x 93 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "sub.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#正例\n",
    "train_postive = train[train['type'] == 1]\n",
    "#负例\n",
    "train_negative = train[train['type'] == 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(5272868, 58469)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "del train\n",
    "len(train_negative) , len(train_postive)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一个模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4218294"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sampler = np.random.randint(0,len(train_negative), size = int(len(train_negative)*0.8))\n",
    "len(sampler)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train = pd.concat([train_postive,train_postive,train_postive,train_postive, train_negative.take(sampler),train_postive,train_postive,train_postive,train_postive],axis=0,ignore_index=True)\n",
    "del sampler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_label = train['type']\n",
    "train = train.drop(['uid', 'spu_id', 'type','date'],axis =1) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "dtrain = xgb.DMatrix(train, train_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "del train, train_label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "76.8630001545\n"
     ]
    }
   ],
   "source": [
    "params = {        \n",
    "            'max_depth':3,\n",
    "            'min_child_weight':3,\n",
    "            'eta':0.3,\n",
    "            'subsample':1,\n",
    "            'colsample_bytree':1,\n",
    "            'scale_pos_weight':1,\n",
    "            'max_delta_step': 0,\n",
    "            'eval_metric':'auc',\n",
    "            'lambda' :0,\n",
    "            'alpha': 0,\n",
    "            'gamma': 0,\n",
    "            'seed': 1,\n",
    "            'objective':'binary:logistic',\n",
    "}\n",
    "t0 = time.time()\n",
    "model1 = xgb.train(params,dtrain,num_boost_round=17)\n",
    "print time.time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f1107b8>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nww8/7OeViIiImEGnwomIiBhGw11ERMQwGu4iIiKG0XAXERExjIa7iIiIYbw63PPy8tx/Li4uZufO\nnVfdtnXrViorK696jMvlYtmyZaSnp/Pll1+ycuVKcnJyvLnMLqlbXkRErMYrp8J1dsgXFBRw+fJl\nnE4nP/vZzwAoKCjg5MmTuFwuIiIi2LdvHwMGDGDixIkA2Gw2ampqCA8P58iRIyxYsIB169Z1u091\ny4uIiHTw6nnura2tlJWVMX/+fL799tur7ktLSyM7O5tdu3aRnp7uvv306dPMnDmTY8eOkZKSwsaN\nG6mrq/PYmtQt738mZgIzc5mYCczMpUzW4Ytctvb29nZPP+mmTZtobGykpaWFqKgonE4nY8eOpby8\nnAsXLtDU1ERtbS3R0dFMnjyZ3Nxc5s2bB0BJSQkbNmzAbrczdepUjh49SmxsLMnJyd3u11s9xEeP\nfk59fT2TJ0/xyvNfi4ndyiZmAjNzmZgJzMylTNZh6W75WbNm9Wp7h8PBtm0dv1YfOnQoL774ovu+\ne+65x6Nrux7qlhcRESvxe/0sdFwtLjU11d/LEBERMYJOhRMRETGMhruIiIhhNNxFREQMo+EuIiJi\nGA13ERERw2i4d0P1syIiYjU+OxUuLy+PxMREoKNnPj8/n/DwcPdtW7duJSkpicjISPdjGhoayMzM\npLm5mSVLlnT5/KqfFRER6eD14X4jPfOhoaGkpKSwadMmj61H9bP+Z2ImMDOXiZnAzFzKZB2+yOWz\nI/fr6Zl3uVz079+f2NhYmpqaCAkJuebzf/Raao8q/a6n9q+qqo76+nqfVyGaWL9oYiYwM5eJmcDM\nXMpkHb6qn/X6Z+4Oh4OsrCwCAgIIDw9nzZo1VFdXu++vr69n+fLl1NfXs2TJEt59992rHr969Wpq\na2u7HOzeNnbseJ/3youIiFwvrx+532jP/EsvveSNZYmIiBjrpuiW/z71zIuIiNwYnQonIiJiGA13\nERERw2i4i4iIGEbDXURExDAa7iIiIobx2XDPy8tz/7m4uJidO3deddvWrVuprKy86jEul4tly5Zd\nVWzja+qWFxERq7mp62dtNhs1NTWEh4d3ux91y4uIiHS4qetnT58+zcyZMzl27Fi39bM9pW55/zMx\nE5iZy8RMYGYuZbIOX+Sytbe3t3tzB5s2baKxsZGWlhaioqJwOp2MHTuW8vJyLly4QFNTE7W1tURH\n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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x68749f98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import seaborn as sns\n",
    "sns.set(font_scale = 0.5)\n",
    "xgb.plot_importance(model1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第二个模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1054573"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sampler = np.random.randint(0,len(train_negative), size = int(len(train_negative)/5))\n",
    "part_negative = train_negative.take(sampler)\n",
    "len(part_negative)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train = pd.concat([train_postive,part_negative,train_postive],axis=0,ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_label = train['type']\n",
    "train = train.drop(['uid', 'spu_id', 'type','date'],axis =1) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "dtrain = xgb.DMatrix(train, train_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "23.0450000763\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "model2 = xgb.train(params,dtrain,num_boost_round=13)\n",
    "print time.time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xc269c550>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nLJ0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xca3f41d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set(font_scale = 0.5)\n",
    "xgb.plot_importance(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1054573"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sampler = np.random.randint(0,len(train_negative), size = int(len(train_negative)/5))\n",
    "part_negative = train_negative.take(sampler)\n",
    "len(part_negative)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train = pd.concat([train_postive,part_negative,train_postive],axis=0,ignore_index=True)\n",
    "train_label = train['type']\n",
    "train = train.drop(['uid', 'spu_id', 'type','date'],axis =1) \n",
    "dtrain = xgb.DMatrix(train, train_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24.7790000439\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "model3 = xgb.train(params,dtrain,num_boost_round=13)\n",
    "print time.time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x8669c898>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nLJ0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7bd7d0b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set(font_scale = 0.5)\n",
    "xgb.plot_importance(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1054573"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sampler = np.random.randint(0,len(train_negative), size = int(len(train_negative)/5))\n",
    "part_negative = train_negative.take(sampler)\n",
    "len(part_negative)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train = pd.concat([train_postive,part_negative,train_postive],axis=0,ignore_index=True)\n",
    "train_label = train['type']\n",
    "train = train.drop(['uid', 'spu_id', 'type','date'],axis =1) \n",
    "dtrain = xgb.DMatrix(train, train_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24.3529999256\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "model4 = xgb.train(params,dtrain,num_boost_round=13)\n",
    "print time.time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x3e40cc88>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nLJ0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x67c71c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set(font_scale = 0.5)\n",
    "xgb.plot_importance(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1054573"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sampler = np.random.randint(0,len(train_negative), size = int(len(train_negative)/5))\n",
    "part_negative = train_negative.take(sampler)\n",
    "len(part_negative)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train = pd.concat([train_postive,part_negative,train_postive],axis=0,ignore_index=True)\n",
    "train_label = train['type']\n",
    "train = train.drop(['uid', 'spu_id', 'type','date'],axis =1) \n",
    "dtrain = xgb.DMatrix(train, train_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "23.2650001049\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "model5 = xgb.train(params,dtrain,num_boost_round=13)\n",
    "print time.time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xf75c5b38>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nLJ0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1fc78f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set(font_scale = 0.5)\n",
    "xgb.plot_importance(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 开始预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "sub = sub.drop(['uid', 'spu_id'],axis=1) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "x_feat = xgb.DMatrix(sub)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.06262468  0.23696475  0.02823382 ...,  0.0630482   0.18348193\n",
      "  0.03792113]\n"
     ]
    }
   ],
   "source": [
    "p1 = model1.predict(x_feat)\n",
    "print p1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.10814098  0.1864697   0.03206999 ...,  0.05449316  0.18862797\n",
      "  0.05207403]\n"
     ]
    }
   ],
   "source": [
    "p2 = model2.predict(x_feat)\n",
    "print p2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.10271742  0.19789957  0.03181181 ...,  0.04457035  0.19083403\n",
      "  0.04999873]\n"
     ]
    }
   ],
   "source": [
    "p3 = model3.predict(x_feat)\n",
    "print p3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.10907139  0.18214524  0.03685917 ...,  0.04944497  0.20798935\n",
      "  0.05330519]\n"
     ]
    }
   ],
   "source": [
    "p4 = model4.predict(x_feat)\n",
    "print p4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.10859682  0.20213854  0.03690812 ...,  0.05653548  0.2011985\n",
      "  0.05416782]\n"
     ]
    }
   ],
   "source": [
    "p5 = model5.predict(x_feat)\n",
    "print p5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "p = np.array(p1) +np.array(p2) ++np.array(p3) +np.array(p4) +np.array(p5)\n",
    "p = p/5.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.10834183,  0.19446343,  0.03470224, ...,  0.05149471,\n",
       "        0.2009335 ,  0.05323384], dtype=float32)"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_pred = pd.DataFrame(p1)\n",
    "y_pred.to_csv('./cache/boost_result4.txt',index=False,header=False, float_format='%.3f')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "63424"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.where(p1>0.5, 1,0).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
